Look for zstd before Clang
authorPino Toscano <pino@debian.org>
Sat, 27 Dec 2025 14:09:34 +0000 (15:09 +0100)
committerPatrick Franz <deltaone@debian.org>
Sat, 27 Dec 2025 14:09:34 +0000 (15:09 +0100)
commit5b9d810ae401e6f48eeeca824b203fe02cb5c3bd
treebfbee2b51df99f851bbb55a33a38c9bfb1f3d4be
parent5de34348d6549d5e949c7395c05426c98df7c7e3
Look for zstd before Clang

Last-Update: 2025-07-19
Forwarded: not-needed

The story is more or less the following:
- LLVM ships its own Findzstd cmake find module from 16; this module defines
  2 targets: zstd::libzstd_shared and zstd::libzstd_static
- libzstd ships a cmake config module that defines 3 targets:
  zstd::libzstd_shared, zstd::libzstd_static, and zstd::libzstd
- the libzstd config module assumes that if one target is defined, all of them
  are, as if the config module itself was already run (i.e. multiple
  "find_package(zstd)" in a cmake project)
- in qttools, Clang is searched first, which in turns requires LLVM, and then
  libzstd

More details here: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1073480#47

As workaround, look for libzstd before Clang: this way the proper zstd cmake
targets are defined, and the Findzstd cmake find module shipped with LLVM will
use them just fine without redefining them.

This should most likely be fixed on LLVM side.

Gbp-Pq: Name cmake-find-zstd-before-clang.diff
configure.cmake
src/designer/src/lib/CMakeLists.txt